package br.com.news.service;

import java.util.List;

import android.content.Context;
import br.com.news.dao.UsuarioAndroidDao;
import br.com.news.dao.interfaces.IUsuarioAndroidDao;
import br.com.news.exception.DataException;
import br.com.news.exception.ServiceException;
import br.com.news.modal.UsuarioAndroidBean;
import br.com.news.service.interfaces.IUsuarioAndroidService;

public class UsuarioAndroidService implements IUsuarioAndroidService {

	private IUsuarioAndroidDao usuarioAndroidDao;

	public UsuarioAndroidService(Context context) {
		usuarioAndroidDao = new UsuarioAndroidDao(context);
	}

	@Override
	public long salvar(UsuarioAndroidBean usuarioAndroidBean) throws ServiceException {
		try {
			return usuarioAndroidDao.salvar(usuarioAndroidBean);
		} catch (DataException e) {
			throw new ServiceException(String.format("<UsuarioAndroidService> Falha ao salvar registro %d", usuarioAndroidBean.getId()), e);
		}
	}

	@Override
	public void atualizar(UsuarioAndroidBean usuarioAndroidBean) throws ServiceException {
		try {
			usuarioAndroidDao.atualizar(usuarioAndroidBean);
		} catch (DataException e) {
			throw new ServiceException(String.format("<UsuarioAndroidService> Falha ao atualizar registro %d", usuarioAndroidBean.getId()), e);
		}
	}

	@Override
	public long inserir(UsuarioAndroidBean usuarioAndroidBean) throws ServiceException {
		try {
			return usuarioAndroidDao.inserir(usuarioAndroidBean);
		} catch (DataException e) {
			throw new ServiceException(String.format("<UsuarioAndroidService> Falha ao inserir registro %d", usuarioAndroidBean.getId()), e);
		}
	}

	@Override
	public int deletar(long idUsuarioAndroid) throws ServiceException {
		try {
			return usuarioAndroidDao.deletar(new UsuarioAndroidBean(idUsuarioAndroid));
		} catch (DataException e) {
			throw new ServiceException(String.format("<UsuarioAndroidService> Falha ao deletar registro %d", idUsuarioAndroid), e);
		}
	}

	@Override
	public UsuarioAndroidBean findId(long idUsuarioAndroid) throws ServiceException {
		try {
			return usuarioAndroidDao.findId(new UsuarioAndroidBean(idUsuarioAndroid));
		} catch (DataException e) {
			throw new ServiceException(String.format("<UsuarioAndroidService> Falha ao buscar registro pelo id %d", idUsuarioAndroid), e);
		}
	}

	@Override
	public List<UsuarioAndroidBean> findAll() throws ServiceException {
		try {
			return usuarioAndroidDao.findAll(new UsuarioAndroidBean());
		} catch (DataException e) {
			throw new ServiceException("<UsuarioAndroidService> Falha ao buscar todos os registro", e);
		}
	}

	@Override
	public void fechar() {
		usuarioAndroidDao.fechar();
	}

}
